package org.smart;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

public class DatabaseConnectionTest {
    public static void main(String[] args) {
        System.out.println("开始测试数据库连接...");
        
        JDBC jdbc = new JDBC();
        
        // 测试1: 简单连接测试
        System.out.println("测试1: 检查基本连接...");
        if (jdbc.testConnection()) {
            System.out.println("✓ 基本连接测试通过");
        } else {
            System.out.println("✗ 基本连接测试失败");
            return;
        }
        
        // 测试2: 连接详细信息测试
        System.out.println("\n测试2: 获取连接详细信息...");
        try {
            Connection conn = jdbc.getConnection();
            System.out.println("✓ 成功获取连接");
            System.out.println("  数据库URL: " + conn.getMetaData().getURL());
            System.out.println("  数据库用户名: " + conn.getMetaData().getUserName());
            System.out.println("  数据库产品名称: " + conn.getMetaData().getDatabaseProductName());
            System.out.println("  数据库产品版本: " + conn.getMetaData().getDatabaseProductVersion());
            
            // 简单查询测试
            System.out.println("\n测试3: 执行简单查询...");
            try {
                Statement stmt = conn.createStatement();
                // 执行一个简单的查询，通常所有数据库都支持
                ResultSet rs = stmt.executeQuery("SELECT 1 as connection_test");
                if (rs.next()) {
                    System.out.println("✓ 查询执行成功，结果: " + rs.getInt("connection_test"));
                }
                rs.close();
                stmt.close();
            } catch (SQLException e) {
                System.out.println("✗ 查询执行失败: " + e.getMessage());
            }
            
            conn.close();
            System.out.println("✓ 连接已关闭");
            
        } catch (SQLException e) {
            System.out.println("✗ 获取连接详细信息失败: " + e.getMessage());
            e.printStackTrace();
        }
        
        System.out.println("\n数据库连接测试完成。");
    }
}